1. Field of the Invention
The present invention relates to network technology. More particularly, the present invention relates to flow control coordination between a network using TCP/IP protocol and one or more other networks which may be using another protocol.
2. Description of the Related Art
It has become increasingly common to link networks together via a “gateway,” which is typically a specially configured network device such as a router. In one example, network 105 of FIG. 1 is a TCP/IP network and network 110 is a Fibre Channel (“FC”) network. Gateway 115 is an interface between networks 105 and 110.
It can be challenging to control the flow of packets across gateway 115, e.g., packets transmitted between network 110 and network 105. (As used herein, the terms “frame” and “packet” will be used synonymously.) Controlling traffic on link 112 between gateway 115 and network 105 is not problematic, because it is governed by the window-based flow control mechanisms of TCP/IP. Accordingly, if reception buffer 125 is reaching capacity, the flow control mechanisms of TCP/IP will prevent network 105 from sending additional packets that will be dropped by gateway 115. Similarly, network 110 uses the buffer-to-buffer credit-based flow control mechanisms of the FC protocol to control the flow of packets sent from network 110 to gateway 115.
However, the situation is complicated because packets need to traverse gateway 115, e.g., packets transmitted from network 105 to network 110. After a packet is received by reception buffer 125, an ACK is sent from gateway 115 to network 105. Gateway 115 processes the packet and attempts to enqueue the packet in transmission buffer 130 for packets awaiting transmission to network 110.
A problem can arise, for example, if network 105 is producing packets faster than they can be consumed by network 110, due perhaps to congestion in network 110. In such a scenario, reception buffer 125 is receiving packets and gateway 115 is sending ACKs to network 105 and forwarding the packets to transmission buffer 130. However, if transmission buffer 130 is sending the packets at a slower rate than it is receiving the packets, transmission buffer 130 may be required to drop some of the packets intended for network 110. Reception buffer 125 receives no indication of this problem and continues to forward packets at a rate appropriate for the conditions of network 105 and link 112.
Therefore, it would be desirable to implement mechanisms to improve the flow control coordination within gateways between networks.